1. Field of the Invention
This invention relates in general to generating visual editors, and in particular, to generating visual editors from eXtensible Markup Language (XML) schemas.
2. Description of Related Art
Extensible Markup Language (XML) is poised to be the next big revolution for the World Wide Web (WWW). With the realization that the Web is not about just browsing any more, XML has emerged as an enabling technology to carry the Web to the next generation of electronic commerce, Web-based workflow, and integration of databases with Web applications.
XML describes a class of data objects called XML documents and partially describes the behavior of computer programs that process them. XML is a restricted form of SGML, the Standard Generalized Markup Language, defined in ISO 8879. The specification for XML can be found at the URL: http://www.w3.org/TR/REC-xml.
XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure.
An XML schema specifies constraints on the structures and types of elements in an XML document. The basic schema for XML is the DTD Document Type Definition). Other XML schema definitions are also being developed, such as DCD (Document Content Definition), XSchema, etc. Information concerning DTD and DCD can be found at the URL: http://www.w3.org/.
The main difference between DTD and DCD is that DTD uses a different syntax from XML, while DCD specifies an XML schema language in XML itself. (XSchema is similar to DCD in this respect). In spite of the differences in the syntax, the goals and constraint semantics for all these XML schema languages are the same. Their commonality is that they all describe XML Schema. This means that they assume the common XML structure, and provide a description language to say how these elements are laid out and are related to each other.
There are about five basic constraints that the XML schema languages describe:                1. The attributes that an element should/may contain:                    a. the types of the attribute values (mainly string types), and            b. the mandatory or optional nature of occurrences of these attributes.                        2. The type and the order in which elements can be contained inside another element (also known as the content model of the element):                    a. the sub-element should be of a certain name or type or that a sub-element could be of any type,            b. a regular expression system to express how these elements occur, wherein this regular expression system can be expressed by the following operators:                            i. |: A|B (either element of type A or of type B can occur),                ii.,: A, B (element of type B follows one of type A),                iii. *: A* (zero or more occurrence of element of type A),                iv. +: A+ (One or more occurrence of element of type A),                v. ?: A? (zero or one occurrence of element of type A),                vi. ( ): ( . . . ) (grouping of expressions in this system).                                                
Note that this system includes some convenience operators. For example, A+ is the same as A, A*.
A software module called an XML processor is used to read XML documents and provide access to their content and structure. It is assumed that an XML processor is doing its work on behalf of another module, called the application. The XML specification located at the URL noted above describes the required behavior of an XML processor in terms of how it must read XML data and the information it must provide to the application.
As XML becomes more extensively used in Web applications, large numbers of XML documents will be created, communicated between applications, and stored into and retrieved from repositories. The volume of XML documents will likely be larger than the current volume of HTML (HyperText Markup Language) documents, because XML documents can be seamlessly integrated with applications.
Unlike HTML documents, which are read only by Web browsers, XML documents can be read and processed by any number of different applications. Moreover, since XML is extensible, there may many different schemas for XML documents for different domains and different applications within a domain, unlike HTML, which has a single schema.
There is a need in the art then for editors that provide users with a facility to create and/or edit XML documents. Of course, the construction of editors is well known in the art. Consider, for example, U.S. Pat. No. 5,640,566, entitled “Method of forming an editor”, U.S. Pat. No. 5,493,678, entitled “Method in a structure editor”, U.S. Pat. No. 5,185,867, entitled “Method and apparatus for automatically generating software specifications”, and U.S. Pat. No. 5,617,578, entitled “Computer-based workstation for generation of logic diagrams from natural language text structured by the insertion of script symbols”. However, none of the references teach or suggest a visual editor that simplifies a user's interaction with XML documents, or an automatic tool for the generation of visual editors for use with specific XML schemas and that are generated from such XML schemas.